<?php

/**
 * inicio actions.
 *
 * @package    fsusi
 * @subpackage inicio
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 2692 2006-11-15 21:03:55Z fabien $
 */
class inicioActions extends sfActions
{
  /**
   * Executes index action
   *
   */
  public function executeIndex()
  {
    $this->getUser()->setAttribute('current','inicio');

    // Creamos una vble de usuario que contendrá el id de la empresa
    // Tomamos el nombre de usuario, para obtener a través de la consulta cruzada el id de la empresa
    $user = $this->getContext()->getUser()->getGuardUser();
    $username = $user->getUsername();
    
    /* Creamos la consulta para obtener el idempresa, como solo hay una cojo la primera.
     * no tengo en consideración que esté relacionado con el nombre de usuario    
     */
    $q = Doctrine_Query::create()
            ->select('id')
            ->from('Empresa id');          
    $empresa_id = $q->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);
    
    // Y el resultado lo guardamos en la vble de sesión.
    $this->getUser()->setAttribute('empresa_id', $empresa_id['id']);
    
    // Definimos la cultura del usuario por defecto
    //$this->getUser()->setCulture(sfConfig::get('app_culture_default','es'));
    $this->getUser()->setCulture('es');
    
    return $this->redirect('inicio/list');
  }

  public function executeList()
  {
  	$this->getUser()->setAttribute('current','inicio');
  }
  
  /*
   * Método que configura el widget para la súbida del fichero CSV
   */
  public function executeImportarFichero(sfWebRequest $request)
  {
        $this->form = new BaseForm();
        $this->form->setWidget('filename', new sfWidgetFormInputFileEditable(
	        array(            
                        'edit_mode'=>false,
                        'with_delete' => false,
                        //'file_src' => 'http://'.$_SERVER['HTTP_HOST'].'/images/pdfs/',
                        'file_src' => '/tmp',
                        //'validated_file_class' => 'sfValidatedFileCustom'
                        )));     
      
  }
  
  /*
   * Método que recoge el fichero del formulario, lo copia a la carpeta uploads y realiza la importación de datos a la BD
   */
  public function executeImportarCSV(sfWebRequest $request)
 {
  	$this->getUser()->setAttribute('current','inicio');
               
        // incrementamos el limite de ejecucion para este script
        ini_set('max_execution_time', 600);
        // Y no ponemos límite a la memoria
        ini_set('memory_limit', '-1');
 
        // definimos el nombre de la copia local
        $filename = sfConfig::get('sf_apps_dir')."/../data/uploads/datos".date("M").".csv";
        //Comprobamos que se trata de un fichero csv
        if ($_FILES['filename']['type']!= sfConfig::get('app_csv_tipoCSV')) {
            $this->getUser()->setFlash('error', sfContext::getInstance()->getI18n()->__('El fichero no tiene extensión CSV'));            
        }
        else{  
            $subido = copy($_FILES['filename']['tmp_name'], $filename); 
            if ($subido){
                $this->getUser()->setFlash('notice', sfContext::getInstance()->getI18n()->__('El fichero CSV se ha importado con éxito'));
                
                // Leer el fichero csv, crear objetos y llamar al método save()                
                $datos = $this->csv_in_array($filename,";","\"",true,"alta");
                if ($datos == NULL) { // Si el csv no se ha procesado bien
                    $this->getUser()->setFlash('error', sfContext::getInstance()->getI18n()->__('El fichero CSV no es correcto. Póngase en contacto con su administrador'));
                }else{
                    $this->crea_objeto($datos);
                }                
                
            }
            else{
                $this->getUser()->setFlash('error', sfContext::getInstance()->getI18n()->__('El fichero CSV no se ha subido correctamente. Inténtelo de nuevo.'));
            }
        }
        $this->redirect('inicio/list');
        
  }
  
  function crea_objeto($datos){
      
       foreach($datos as $dato) {
           
           // Miro si ya está en la base de datos
           $dni = trim($dato[sfConfig::get('app_csv_cabecera12')]); //numero de dni
           $tipo = trim($dato[sfConfig::get('app_csv_cabecera12b')]); //tipo de documento
           $nombre = trim($dato[sfConfig::get('app_csv_cabecera7')]); //nombre
           $primer_apellido = trim($dato[sfConfig::get('app_csv_cabecera8')]); //primer_apellido
           $segundo_apellido = trim($dato[sfConfig::get('app_csv_cabecera9')]); //segundo_apellido
           //Debo buscar si está la póliza para ese cliente
           $num_poliza = $dato[sfConfig::get('app_csv_cabecera2')]; //numero de póliza
           $producto_poliza = $dato[sfConfig::get('app_csv_cabecera10')]; //producto de la póliza
           //Buscamos todos los clientes que tienen ese num_documento, dado que el DNI se puede repetir en algunos casos (hijos) compruebo tb el nombre, apellidos y tipo de documento
           $contacto = Doctrine_Core::getTable('Contacto')->findByDql('num_documento = ? AND nombre= ? AND primer_apellido=? AND segundo_apellido=?', array($dni,$nombre,$primer_apellido,$segundo_apellido))
                                      ->getFirst();
           
           $polizas_totales = 0;
           $polizas_bajas = 0;
           //Si el contacto no existe lo creo, y también creo una póliza vacía
           if ($contacto == null){
               $contacto = new Contacto();
               $poliza = new Poliza();
               $polizas_totales++;
           }           
           else { //Si el cliente existe
                //Buscamos si existe esa póliza (nº y producto) para ese cliente.
                $q = Doctrine_Query::create()                            
                                    ->from('Poliza p1')
                                    ->where('p1.poliza=? AND p1.producto=?', array($num_poliza, $producto_poliza))
                                    ->andWhere('p1.id IN (SELECT pc.poliza_id FROM PolizaContacto pc WHERE pc.contacto_id IN (SELECT c1.id FROM Contacto c1 WHERE c1.id=? ))', $contacto->getId());
                
                $poliza = $q->fetchOne(array(), Doctrine_Core::HYDRATE_RECORD); 
                $polizas_totales = $contacto->getPolizasTotales();
                //Si la póliza no existe la creo nueva
                if ($poliza == null){
                    $poliza = new Poliza();
                    $polizas_totales++;
                }
           }     
           //Cambio / por - en las fechas para que coja formato europeo.
           $dato[sfConfig::get('app_csv_cabecera38')] = str_replace("/", "-",$dato[sfConfig::get('app_csv_cabecera38')]); //fecha nacimient
           $dato[sfConfig::get('app_csv_cabecera6')] = str_replace("/", "-",$dato[sfConfig::get('app_csv_cabecera6')]); //fecha renovac
           $dato[sfConfig::get('app_csv_cabecera16')] = str_replace("/", "-",$dato[sfConfig::get('app_csv_cabecera16')]); //fecha de alta
           $dato[sfConfig::get('app_csv_cabecera18')] = str_replace("/", "-",$dato[sfConfig::get('app_csv_cabecera18')]); //fecha estado
           //Asigno los campos
           $poliza->setPoliza($num_poliza);
           $poliza->setColectivo($dato[sfConfig::get('app_csv_cabecera5')]);
           $poliza->setFechaRenovacion(date( 'Y-m-d', strtotime( $dato[sfConfig::get('app_csv_cabecera6')] )));
           $contacto->setNombre($nombre);
           $contacto->setPrimerApellido($primer_apellido);
           $contacto->setSegundoApellido($segundo_apellido);
           $poliza->setProducto($producto_poliza);
           $contacto->setNumDocumento($dni);
           $contacto->setTipoDocumento($tipo);
           $poliza->setFechaAlta(date( 'Y-m-d', strtotime( $dato[sfConfig::get('app_csv_cabecera16')] ) ));
           $poliza->setEstado($dato[sfConfig::get('app_csv_cabecera17')]);
           $poliza->setFechaEstado(date( 'Y-m-d', strtotime( $dato[sfConfig::get('app_csv_cabecera18')] )));
           $prima = $dato[sfConfig::get('app_csv_cabecera22')];
           $prima = str_replace(',','.',$prima);  //Cambio el formato del total_prima para que sea un nº correcto         
           $poliza->setTotalPrima($prima);
           $poliza->setFrecuenciaPago($dato[sfConfig::get('app_csv_cabecera23')]);
           $contacto->setTelefono($dato[sfConfig::get('app_csv_cabecera24')]);
           $contacto->setTipoVia($dato[sfConfig::get('app_csv_cabecera25')]);
           $contacto->setDireccion($dato[sfConfig::get('app_csv_cabecera26')]);
           //$contacto->setDireccion("adios");
           $contacto->setNumVia($dato[sfConfig::get('app_csv_cabecera27')]);           
           $contacto->setRestoVia($dato[sfConfig::get('app_csv_cabecera28')]);           
           $contacto->setPiso($dato[sfConfig::get('app_csv_cabecera29')]);
           $contacto->setPuerta($dato[sfConfig::get('app_csv_cabecera30')]);
           $contacto->setEscalera($dato[sfConfig::get('app_csv_cabecera31')]);
           $contacto->setPortal($dato[sfConfig::get('app_csv_cabecera32')]);
           $contacto->setMunicipio($dato[sfConfig::get('app_csv_cabecera33')]);
           $contacto->setCodPostal($dato[sfConfig::get('app_csv_cabecera34')]);
           $contacto->setProvincia($dato[sfConfig::get('app_csv_cabecera35')]);           
           //Compruebo que el email no sea null, para que no se borre si ya se había modificado a través de la plataforma
           $email = trim($dato[sfConfig::get('app_csv_cabecera36')]);
           if (($email!= NULL)||($email!= "")) {               
               $contacto->setEmail($email);
           }   
           //Supongo que si se indica N el usuario no autoriza
           if (($dato[sfConfig::get('app_csv_cabecera37')] == 'N')||($dato[sfConfig::get('app_csv_cabecera37')] == 'n'))
           {
               $contacto->setAutoriza(0);                   
           }else { //Si no se especifica nada o se especifica S, el usuario autoriza el envío de mailing
               $contacto->setAutoriza(1);
           }               
           $contacto->setFechaNac(date( 'Y-m-d', strtotime( $dato[sfConfig::get('app_csv_cabecera38')] )));
           $contacto->setSexo($dato[sfConfig::get('app_csv_cabecera39')]);
           $poliza->setBanco($dato[sfConfig::get('app_csv_cabecera40')]);
           $poliza->setSucursal($dato[sfConfig::get('app_csv_cabecera41')]);
           $poliza->setDc($dato[sfConfig::get('app_csv_cabecera42')]);
           $poliza->setCuenta($dato[sfConfig::get('app_csv_cabecera43')]);
           
           //Si existe el idioma lo inserto.
           //Compruebo que no sea null, para que no se borre si ya se había insertado en importaciones previas.
           if (isset($dato[sfConfig::get('app_csv_cabecera44')])) {               
               $idioma = strtolower(trim($dato[sfConfig::get('app_csv_cabecera44')]));
               if (($idioma!= NULL)||($idioma!= "")) {    
                    $contacto->setIdioma($idioma);
               }     
           }
           $contacto->setPolizasTotales($polizas_totales); //Guardo el total de pólizas que hemos dado de alta
           $contacto->setPolizasBajas($polizas_bajas); //Guardo el total de pólizas que hemos dado de alta
           $contacto->save();
            
           //Relacionar las polizas con los clientes y viceversa, aún no sé cómo.
           $micoleccion = $poliza->getContactos();
           $micoleccion->add($contacto);
           $poliza->setContactos($micoleccion);
           
           $poliza->save();
       }
  }
  
  function csv_in_array($url,$delm=";",$encl="\"",$head=false,$tipo) {
   
    $csvxrow = file($url);   // ---- csv rows to array ----
   
    $csvxrow[0] = chop($csvxrow[0]);
    $csvxrow[0] = str_replace($encl,'',$csvxrow[0]);
    $keydata = explode($delm,$csvxrow[0]);
    $keynumb = count($keydata);
    
        if ( !$this->cabeceras_correctas($tipo,$keydata) //O los campos no tienen la cabecera determinada
            ) {            
            return NULL;
        }
        else{ // Si todo es correcto, proceso
           if ($head === true) {
                $anzdata = count($csvxrow);
                $z=0;
                for($x=1; $x<$anzdata; $x++) {
                    $csvxrow[$x] = chop($csvxrow[$x]);
                    $csvxrow[$x] = str_replace($encl,'',$csvxrow[$x]);
                    $csv_data[$x] = explode($delm,$csvxrow[$x]);
                    $i=0;
                    foreach($keydata as $key) {
                        //Comprobación para evitar fallos si no hay campos definidos
                        if (isset($csv_data[$x][$i])){
                            $out[$z][$key] = $csv_data[$x][$i];
                        } 
                        else { 
                            $out[$z][$key] = NULL;
                        }
                        
                        $i++;
                    }   
                    $z++;
                }
            }
            else {
                $i=0;
                foreach($csvxrow as $item) {
                    $item = chop($item);
                    $item = str_replace($encl,'',$item);
                    $csv_data = explode($delm,$item);
                    for ($y=0; $y<$keynumb; $y++) {
                    $out[$i][$y] = $csv_data[$y];
                    }
                    $i++;
                }
            }

            return $out;
        } 
    //}
 } //end function
   
 /* Inclusión de métodos para importar fichero csv de bajas del sistema */
 
   /*
   * Método que configura el widget para la súbida del fichero CSV
   */
  public function executeImportarFicheroBajas(sfWebRequest $request)
  {
        $this->form = new BaseForm();
        $this->form->setWidget('filename', new sfWidgetFormInputFileEditable(
	        array(            
                        'edit_mode'=>false,
                        'with_delete' => false,
                        //'file_src' => 'http://'.$_SERVER['HTTP_HOST'].'/images/pdfs/',
                        'file_src' => '/tmp',
                        //'validated_file_class' => 'sfValidatedFileCustom'
                        )));     
      
  }
 
 /*
   * Método que recoge el fichero del formulario, lo copia a la carpeta uploads y realiza la importación de bajas a la BD
   */
  public function executeBajasCSV(sfWebRequest $request)
 {
  	$this->getUser()->setAttribute('current','inicio');
               
        // incrementamos el limite de ejecucion para este script
        ini_set('max_execution_time', 600);
        // Y no ponemos límite a la memoria
        ini_set('memory_limit', '-1');
 
        // definimos el nombre de la copia local
        $filename = sfConfig::get('sf_apps_dir')."/../data/uploads/bajas".date("M").".csv";
        //Comprobamos que se trata de un fichero csv
        if ($_FILES['filename']['type']!= sfConfig::get('app_csv_tipoCSV')) {
            $this->getUser()->setFlash('error', sfContext::getInstance()->getI18n()->__('El fichero no tiene extensión CSV'));            
        }
        else{  
            $subido = copy($_FILES['filename']['tmp_name'], $filename); 
            if ($subido){
                $this->getUser()->setFlash('notice', sfContext::getInstance()->getI18n()->__('El fichero de bajas CSV se ha importado con éxito'));
                
                // Leer el fichero csv, crear objetos y llamar al método save()                
                $datos = $this->csv_in_array($filename,";","\"",true,"baja");
                if ($datos == NULL) { // Si el csv no se ha procesado bien
                    $this->getUser()->setFlash('error', sfContext::getInstance()->getI18n()->__('El fichero de bajas CSV no es correcto. Póngase en contacto con su administrador'));
                }else{
                    $this->baja_objeto($datos);
                }                
                
            }
            else{
                $this->getUser()->setFlash('error', sfContext::getInstance()->getI18n()->__('El fichero de bajas CSV no se ha subido correctamente. Inténtelo de nuevo.'));
            }
        }
        $this->redirect('inicio/list');
        
  }
  
  function baja_objeto($datos){
      
       foreach($datos as $dato) {           
           // Miro si ya está en la base de datos
           $dni = $dato[sfConfig::get('app_bajascsv_cabecera5')]; //numero de dni           
           //Debo buscar si está la póliza para ese cliente
           $num_poliza = $dato[sfConfig::get('app_bajascsv_cabecera0')]; //numero de póliza
           //$producto_poliza1 = $dato[sfConfig::get('app_bajascsv_cabecera11')]; //producto de la póliza
           
           //Buscamos todos los clientes que tienen ese num_documento
           /*
            *  ATENCIÓN!!! Según el fichero de altas puede haber varios clientes con el mismo DNI, sin embargo aquí no se controla
            *  porque no se puede obtener del fichero de bajas.
            */           
           $contacto = Doctrine_Core::getTable('Contacto')->findByDql('num_documento = ?', array($dni))
                        ->getFirst();
           //Si el contacto existe buscamos su póliza
           if ($contacto != null){
               $numero_bajas = $contacto->getPolizasBajas();
               //Buscamos si existe esa póliza (nº y producto) para ese cliente.
               $producto_n=1;
               $producto = $dato[sfConfig::get('app_bajascsv_cabecera1'.$producto_n)]; //producto de la póliza
               while (($producto_n <=5) && ($producto!="")){
                    $q = Doctrine_Query::create()                            
                                        ->from('Poliza p1')
                                        ->where('p1.poliza=? AND p1.producto=?', array($num_poliza, $producto))
                                        ->andWhere('p1.id IN (SELECT pc.poliza_id FROM PolizaContacto pc WHERE pc.contacto_id IN (SELECT c1.id FROM Contacto c1 WHERE c1.id=? ))', $contacto->getId());

                    $poliza = $q->fetchOne(array(), Doctrine_Core::HYDRATE_RECORD);              
                    //Si la póliza existe la doy de baja
                    if (($poliza != null) && ($poliza->getEstado() != "BAJA")){
                        //Si la póliza no estaba de baja, la cuento como nueva baja.
                        $numero_bajas++;                        
                        $poliza->setEstado("BAJA");
                        $poliza->setObservaciones($dato[sfConfig::get('app_bajascsv_cabecera9')]); //Motivo de la baja                        
                        //Cambio / por - en las fechas para que coja formato europeo.
                        $dato[sfConfig::get('app_bajascsv_cabecera7')] = str_replace("/", "-",$dato[sfConfig::get('app_bajascsv_cabecera7')]); //fecha de grabación de baja
                        $poliza->setFechaEstado(date( 'Y-m-d', strtotime( $dato[sfConfig::get('app_bajascsv_cabecera7')] )));
                        $poliza->save(); 
                    }
                    $producto_n++;
                    $producto = $dato[sfConfig::get('app_bajascsv_cabecera1'.$producto_n)]; //producto de la póliza
               }
               //Modifico los datos del cliente si han cambiado y no están vacíos
               //Compruebo que el email no sea null, para que no se borre si ya se había modificado a través de la plataforma
               $email = trim($dato[sfConfig::get('app_bajascsv_cabecera19')]);
               if (($email!= NULL)||($email!= "")) {               
                    $contacto->setEmail($email);
               }   
               $telefono = trim($dato[sfConfig::get('app_bajascsv_cabecera18')]);
               if (($telefono!= NULL)||($telefono!= "")) {               
                    $contacto->setTelefono($telefono);
               }
               $contacto->setPolizasBajas($numero_bajas);
               $contacto->save();               
           }
       }    
  }
  
  function cabeceras_correctas($tipo,$keydata) {
   
    if ($tipo == "alta"){
        if (  //O los campos no tienen la cabecera determinada
            ($keydata[0]!= sfConfig::get('app_csv_cabecera0')) ||
            ($keydata[1]!= sfConfig::get('app_csv_cabecera1')) ||
            ($keydata[2]!= sfConfig::get('app_csv_cabecera2')) ||
            ($keydata[3]!= sfConfig::get('app_csv_cabecera3')) ||
            ($keydata[4]!= sfConfig::get('app_csv_cabecera4')) ||
            ($keydata[5]!= sfConfig::get('app_csv_cabecera5')) ||
            ($keydata[6]!= sfConfig::get('app_csv_cabecera6')) ||
            ($keydata[7]!= sfConfig::get('app_csv_cabecera7')) ||
            ($keydata[8]!= sfConfig::get('app_csv_cabecera8')) ||
            ($keydata[9]!= sfConfig::get('app_csv_cabecera9')) ||
            ($keydata[10]!= sfConfig::get('app_csv_cabecera10')) ||
            ($keydata[11]!= sfConfig::get('app_csv_cabecera11')) ||
            ($keydata[12]!= sfConfig::get('app_csv_cabecera12')) ||
            ($keydata[13]!= sfConfig::get('app_csv_cabecera13')) ||
            ($keydata[14]!= sfConfig::get('app_csv_cabecera14')) ||
            ($keydata[15]!= sfConfig::get('app_csv_cabecera15')) ||
            ($keydata[16]!= sfConfig::get('app_csv_cabecera16')) ||
            ($keydata[17]!= sfConfig::get('app_csv_cabecera17')) ||
            ($keydata[18]!= sfConfig::get('app_csv_cabecera18')) ||
            ($keydata[19]!= sfConfig::get('app_csv_cabecera19')) ||
            ($keydata[20]!= sfConfig::get('app_csv_cabecera20')) ||
            ($keydata[21]!= sfConfig::get('app_csv_cabecera21')) ||
            ($keydata[22]!= sfConfig::get('app_csv_cabecera22')) ||
            ($keydata[23]!= sfConfig::get('app_csv_cabecera23')) ||
            ($keydata[24]!= sfConfig::get('app_csv_cabecera24')) ||
            ($keydata[25]!= sfConfig::get('app_csv_cabecera25')) ||
            ($keydata[26]!= sfConfig::get('app_csv_cabecera26')) ||
            ($keydata[27]!= sfConfig::get('app_csv_cabecera27')) ||
            ($keydata[28]!= sfConfig::get('app_csv_cabecera28')) ||
            ($keydata[29]!= sfConfig::get('app_csv_cabecera29')) ||
            ($keydata[30]!= sfConfig::get('app_csv_cabecera30')) ||
            ($keydata[31]!= sfConfig::get('app_csv_cabecera31')) ||                
            ($keydata[32]!= sfConfig::get('app_csv_cabecera32')) ||
            ($keydata[33]!= sfConfig::get('app_csv_cabecera33')) ||
            ($keydata[34]!= sfConfig::get('app_csv_cabecera34')) ||    
            ($keydata[35]!= sfConfig::get('app_csv_cabecera35')) ||
            ($keydata[36]!= sfConfig::get('app_csv_cabecera36')) ||
            ($keydata[37]!= sfConfig::get('app_csv_cabecera37')) ||
            ($keydata[38]!= sfConfig::get('app_csv_cabecera38')) ||
            ($keydata[39]!= sfConfig::get('app_csv_cabecera39')) ||
            ($keydata[40]!= sfConfig::get('app_csv_cabecera40')) ||    
            ($keydata[41]!= sfConfig::get('app_csv_cabecera41')) ||
            ($keydata[42]!= sfConfig::get('app_csv_cabecera42')) ||    
            ($keydata[43]!= sfConfig::get('app_csv_cabecera43'))) {
             return false;
        }
        else{
            return true;
        }
      } 
      else{
        if ($tipo == "baja"){
            if (  //O los campos no tienen la cabecera determinada
                ($keydata[0]!= sfConfig::get('app_bajascsv_cabecera0')) ||
                ($keydata[1]!= sfConfig::get('app_bajascsv_cabecera1')) ||
                ($keydata[2]!= sfConfig::get('app_bajascsv_cabecera2')) ||
                ($keydata[3]!= sfConfig::get('app_bajascsv_cabecera3')) ||
                ($keydata[4]!= sfConfig::get('app_bajascsv_cabecera4')) ||
                ($keydata[5]!= sfConfig::get('app_bajascsv_cabecera5')) ||
                ($keydata[6]!= sfConfig::get('app_bajascsv_cabecera6')) ||
                ($keydata[7]!= sfConfig::get('app_bajascsv_cabecera7')) ||
                ($keydata[8]!= sfConfig::get('app_bajascsv_cabecera8')) ||
                ($keydata[9]!= sfConfig::get('app_bajascsv_cabecera9')) ||
                ($keydata[10]!= sfConfig::get('app_bajascsv_cabecera10')) ||
                ($keydata[11]!= sfConfig::get('app_bajascsv_cabecera11')) ||
                ($keydata[12]!= sfConfig::get('app_bajascsv_cabecera12')) ||
                ($keydata[13]!= sfConfig::get('app_bajascsv_cabecera13')) ||
                ($keydata[14]!= sfConfig::get('app_bajascsv_cabecera14')) ||
                ($keydata[15]!= sfConfig::get('app_bajascsv_cabecera15')) ||
                ($keydata[16]!= sfConfig::get('app_bajascsv_cabecera16')) ||
                ($keydata[17]!= sfConfig::get('app_bajascsv_cabecera17')) ||
                ($keydata[18]!= sfConfig::get('app_bajascsv_cabecera18')) ||
                ($keydata[19]!= sfConfig::get('app_bajascsv_cabecera19'))) {
                    return false;
            }
            else{
                return true;
            }   
      }           
    }
 } //end function
   
  
  
}
